package edu.ccut.saturn.manager.bundles.core;

import java.util.ArrayList;
import java.util.List;

import edu.ccut.saturn.component.DefaultComponent;
import edu.ccut.saturn.component.IDataInfo;
import edu.ccut.saturn.component.IDataItem;
import edu.ccut.saturn.component.IParameterContext;
import edu.ccut.saturn.component.IValidateInfo;
import edu.ccut.saturn.component.SaturnDataManager;

public class GetPartOfSaturnDateValidate extends DefaultComponent {
	@SuppressWarnings("unchecked")
	@Override
	public void execute(IParameterContext parameterContext) throws Exception {
		
		String dataFullKey = (String) parameterContext.getParameterValue(0);
		String saturnItemName = (String) parameterContext.getParameterValue(1);
		
		IDataInfo dataInfo = SaturnDataManager.getInstance().getSaturnDataInfo(dataFullKey);
		IDataItem dataItem = dataInfo.getDataItem(saturnItemName);
		
		List<IValidateInfo> allValidateInfoList = (List<IValidateInfo>) parameterContext.getParameterValue(2);
		List<IValidateInfo> saturnDateValidateInfoList = dataItem.getValidateUseInfo().getValidateInfos();		
		List<IValidateInfo> otherValidateInfoList = new ArrayList<IValidateInfo>();			 
		otherValidateInfoList.addAll(allValidateInfoList);
		
		for (IValidateInfo allValidateInfo : allValidateInfoList) {    
            for(IValidateInfo saturnDateValidateInfo : saturnDateValidateInfoList) {  
        		if (saturnDateValidateInfo.getName().equals(allValidateInfo.getName())) {         			
        			otherValidateInfoList.remove(allValidateInfo);
        		}	
           }		
		}	
		parameterContext.setParameter(3, otherValidateInfoList);
	}
}